#!/bin/bash -e

# 检查是否传递了目标参数
if [ $# -ne 1 ]; then
    echo "Usage: $0 <docker image>"
    exit
fi

IMG=$1

# 如果 IMG 没有包含 tag（即没有 ":"），则默认使用 "latest"
if [[ "$IMG" != *":"* ]]; then
    IMG="${IMG}:latest"
fi

###############################################################################
# DockerHub 镜像源列表
DOCKERHUB_REGISTRY_MIRRORS=(
    "docker.m.daocloud.io"
    "docker.hpcloud.cloud"
    "docker.imgdb.de"
    "docker-0.unsee.tech"
    "docker.hlmirror.com"
    "docker.kejilion.pro"
    "registry.dockermirror.com"
    "hub.rat.dev"
    "dhub.kubesre.xyz"
    "docker.nastool.de"
)

###############################################################################
# 检查本地是否已经存在 ${IMG}
if docker images --format "{{.Repository}}:{{.Tag}}" | grep -q "^${IMG}$"; then
    echo "镜像 ${IMG} 已经存在，跳过拉取步骤。"
    exit 0
fi

# 遍历镜像源，拉取并打标签
for registry in "${DOCKERHUB_REGISTRY_MIRRORS[@]}"; do
   ./_docker_pull_img.sh ${IMG} ${registry}
done

echo "所有镜像源都尝试过，未能拉取并打标签 ${IMG}。"

